package yixaun.tim.service;


import lombok.NonNull;
import yixaun.tim.bean.chat.ChatMsgEnum;
import yixaun.tim.bean.chat.ChatVo;
import yixaun.tim.bean.chat.MsgCustomContent;
import yixaun.tim.common.TimException;

import java.util.List;


/**
 * @author pengshiqing
 * @date 2019-07-20
 * @Description: 单聊消息 https://cloud.tencent.com/document/product/269/1610
 */
public interface TimChatService {


    /**
     * 发送单聊文本消息
     *  @param fromAccount 指定发送账号
     *  @param toAccount 群发接收账号
     *  @param msgList 消息集合
     */
    void sendTextMsg(@NonNull String fromAccount, @NonNull String toAccount, @NonNull List<String> msgList, ChatMsgEnum chatMsgEnum) throws TimException;

    /**
     * 批量文本消息
     *  @param fromAccount 指定发送账号
     *  @param toAccounts 群发接收账号集合
     *  @param msgList 消息集合
     */
    ChatVo batchSendTextMsg(@NonNull String fromAccount, @NonNull List<String> toAccounts, @NonNull List<String> msgList, ChatMsgEnum chatMsgEnum) throws TimException;


    /**
     * 发送单聊自定义消息
     *  @param fromAccount 指定发送账号
     *  @param toAccount 群发接收账号集合
     *  @param msgCustomContent 消息
     */
    void sendCustomMsg(@NonNull String fromAccount, @NonNull String toAccount, @NonNull MsgCustomContent msgCustomContent, ChatMsgEnum chatMsgEnum) throws TimException;


    /**
     * 批量自定义消息
     *  @param fromAccount 指定发送账号
     *  @param toAccounts 群发接收账号集合
     *  @param msgCustomContent 消息集合
     */
    ChatVo batchSendCustomMsg(@NonNull String fromAccount, @NonNull List<String> toAccounts, @NonNull MsgCustomContent msgCustomContent, ChatMsgEnum chatMsgEnum) throws TimException;




}
